package com.ilxqx.framework.generator.constant;

/**
 * 生成配置
 * @author venus
 */
public interface GenerationConfigConstants {

    /**
     * 模板后缀名（请不要修改，否则无法生成）
     */
    String TEMPLATE_SUFFIX = ".ftl";

    /**
     * 默认的生成文件的后缀名
     */
    String DEFAULT_GENERATED_FILE_SUFFIX = ".java";

    /**
     * 模板存放的基本路径
     */
    String BASE_TEMPLATE_PATH = "generation-templates/";

    /**
     * 框架包路径
     */
    String FRAMEWORK_PACKAGE = "com.ilxqx.framework";

    /**
     * 数据库名
     */
    String DATABASE_NAME = "quick_framework";

    /**
     * 项目classpath绝对路径
     */
    String ABSOLUTE_CLASS_PATH = "/Users/venus/IdeaProjects/quick-start-framework/src/main/java";

    /**
     * 基本包路径
     */
    String BASE_PACKAGE = "com.ilxqx.framework.system";

    /**
     * 请求路径名称
     */
    String REQUEST_URI_NAME = "sys";

    /**
     * 全局数据模型处理器
     */
    String[] DATA_PROCESSORS = {
        // 系统自带，如果你觉得不满足自己的需求，你可以自定义自己的数据处理器
        "com.ilxqx.framework.generator.data.PrimaryKeyDataModelProcessing",
        "com.ilxqx.framework.generator.data.TypeConverterDataModelProcessing",
        //"com.ilxqx.framework.generator.data.EnumClassGeneratorDataModelProcessing"
    };

    /**
     * 生成那些表
     */
    String[] TABLES = {
        "business"
    };

    /**
     * 枚举类模板
     */
    String ENUM_TEMPLATE = "java/enum:enumeration:${userName}${field}Enum";

    /**
     * 数据转换类模板
     */
    String CONVERTER_TEMPLATE = "java/converter:converter.attr:${userName}${field}Converter";

    /**
     * 生成那些模板(模板:模板所在的子包:生成的Java类文件名称（字符串中${userName}代表大写驼峰表名）)
     * 注意：最后的文件名可带文件类型后缀，如果不带，将使用的默认的文件后缀（.java）
     */
    String[] TEMPLATES = {
        "java/entity:entity:${userName}",
//        "java/repository:repository:${userName}Repository",
//        "java/service:service:${userName}Service",
//        "java/service-impl:service.impl:${userName}ServiceImpl",
//        "java/update-form:form.update:${userName}UpdateForm",
//        "java/search-form:form.search:${userName}SearchForm",
//        "java/controller:controller:${userName}Controller"
    };

    /**
     * 视图vue文件存放路径
     */
    String VIEWS_PATH = "/Users/venus/WebstormProjects/quick-start-framework-vue-admin/src/views/";

    /**
     * 项目src目录
     */
    String SRC_PATH = "/Users/venus/WebstormProjects/quick-start-framework-vue-admin/src/";

    String[] VUE_TEMPLATES = {
        "vue/index:system/${kebabName}:index"
    };

    String[] JS_TEMPLATES = {
        "js/api:api/system:${kebabName}"
    };

}
